package mx.itesm.thirstforrevenge;



import java.util.*;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;

/**
* @author Raúl Oscar Irene Rivas
* @author Juan Carlos Felipe Torres
* @author Victor López
* @author Ivan Haecker
* @version 1.1
* Clase dedicada al manejo de la base
*/
//Hay que cambiar el nombre!!!
public class Sprite {

	private ArrayList<Bitmap> arrayImg;
	private int indice; //El frame actual
	private int movX;
	private int movY;
	
	private int pruebaX;
	private int pruebaY;
		
	/**
	 * Se carga la imagen correspondiente a la base y su posición en la pantalla.
	 * @param admRecursos, ids, posicionX, posicionY
	 */
	public Sprite(Resources admRecursos,int []ids,int posicionX, int posicionY){ 
		arrayImg = new ArrayList<Bitmap>();
		
		for(int id:ids){
			Bitmap bm = BitmapFactory.decodeResource(admRecursos, id);
			arrayImg.add(bm);
		}
		indice=0;
		
		//Aquí se colocan los enemigos...
		movX = posicionX;
		movY = posicionY;
		
		pruebaX = movX;
		pruebaY = movY;
		
	}
	
	/**
	 * Getters y Setters del movimiento en X y Y.
	 * @return
	 */
	public int getMovX() {
		return movX;
	}
	
	public void setMovX(int movX) {
		this.movX = movX;
	}
	
	public void setMovY(int movY) {
		this.movY = movY;
	}
	
	public int getMovY() {
		return movY;
	}
	
	/**
	 * Creación del canvas, donde se dibujará la base.
	 * @param Canvas, Paint
	 */
	public void draw(Canvas canvas, Paint p){
		canvas.drawBitmap(arrayImg.get(indice), movX, movY, p);
	}
	
	private int velMovEne = 10;
	private int velEneSprite = 30;
	
	public void nextFrame() throws InterruptedException{
		indice = (indice + 1) % arrayImg.size();
			if(movX >= 0){
				movX -= velMovEne;
				//movY = 150;
				Thread.sleep(velEneSprite);
			}
	}
	
	private int velBaseSprite =40;
	
	/**
	 * Destrucción de la base, desaparece de la pantalla.
	 * @param void
	 */
	public void destruir(){
		movY = pruebaY;
		movX = pruebaX;
	}
		
	/**
	 * 
	 * @param void
	 * @throws InterruptedException
	 */
	public void movFijo() throws InterruptedException{
		indice = (indice + 1) % arrayImg.size();
		Thread.sleep(velBaseSprite);
	}
		
}

